package com.itheima.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.controller.dto.CheckGroupDto;
import com.itheima.entity.PageResult;
import com.itheima.entity.QueryPageBean;
import com.itheima.entity.Result;
import com.itheima.pojo.CheckGroup;

import java.util.List;

/**
 * @Description 检查组服务接口
 * @Author makun
 * @Date 2023/9/13 14:18
 * @Version 1.0
 */
public interface CheckGroupService extends IService<CheckGroup> {
    /**
     * 获取所有的检查组
     * @param queryString 查询条件
     * @return
     */
    List<CheckGroup> getAll(String queryString);

    /**
     * 分页查询检查组
     * @param queryPageBean 查询参数
     * @return 查询结果
     */
    Page<CheckGroup> findPage(QueryPageBean queryPageBean);

    /**
     * 通过ID查找检查组信息
     * @param id
     * @return
     */
    Result findById(Integer id);

    /**
     * 通过检查组ID查询其下所有的检查项
     * @param id 检查组ID
     * @return
     */
    Result findCheckItemIdsByCheckGroupId(Integer id);

    /**
     * 编辑检查组信息
     * @param checkItemIds
     * @param checkGroup
     * @return
     */
    Result edit(Integer[] checkItemIds, CheckGroup checkGroup);

    /**
     * 新增检查组
     * @param checkItemIds
     * @param checkGroup
     * @return
     */
    Result add(Integer[] checkItemIds, CheckGroup checkGroup);

    /**
     * 通过检查组ID删除检查组
     * @param id
     * @return
     */
    Result delete(Integer id);

    /**
     * 通过套餐ID获取该套餐下所有的检查组ID
     * @param id
     * @return
     */
    Result findCheckGroupIdsBySetMealId(Integer id);

    /**
     * 添加一个检查组
     * @param checkGroupDto
     * @return
     */
    boolean saveOne(CheckGroupDto checkGroupDto);
}
